package com.panfeng.xcloud.boss.provider.assets.web.vo.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "操作--开仓,清仓,锁仓,解锁,停止机器人请求")
public class OperateBotReqVO implements Serializable {

    @NotNull(message = "用户ID不能为null")
    @NotEmpty(message = "用户ID不能为空")
    @ApiModelProperty("用户ID")
    private String userId;

    @NotNull(message = "操作类型不能为null")
    @ApiModelProperty("操作类型 0开仓 1清仓 2停止机器人 3锁仓 4解锁")
    private int operateType;

    @NotNull(message = "交易对源币种不能为null")
    @NotEmpty(message = "交易对源币种不能为空")
    @ApiModelProperty("交易对源币种")
    private String sourceCoin;

    @NotNull(message = "交易对目的币种不能为null")
    @NotEmpty(message = "交易对目的币种不能为空")
    @ApiModelProperty("交易对目的币种")
    private String destinationCoin;

    @NotNull(message = "交易所类型不能为null")
    @ApiModelProperty("交易所类型(0.okex 1.huobi 2.binance)")
    private Integer exchangeType;

    @ApiModelProperty("数量 操作类型为清仓,停止机器人,锁仓和解锁则无需传数量")
    private BigDecimal amount;

    @NotNull(message = "仓位方向不能为null")
    @ApiModelProperty("仓位方向类型 buy:多仓 sell:空仓")
    private String direction;

}
